package conservare.boleto;

import conservare.constantes.Constante;
import conservare.modelo.boleto.BoletoEmitido;

public class GeradorBoletoFactory {

	public static GeradorBoleto criarGeradorBoleto(BoletoEmitido infoBoleto, conservare.modelo.banco.CarteiraBoleto carteiraBoleto) throws Exception{
		
		GeradorBoleto geradorBoleto = null;
		
		if(carteiraBoleto != null){
			if(carteiraBoleto.getId().getConta().getAgencia().getBanco().getNumeroDoBanco().equals(Constante.CONSERVARE_NUMERO_BANCO_CEF) && carteiraBoleto.getId().getNumeroCarteira() == Constante.CONSERVARE_NUMERO_CARTEIRA){
				geradorBoleto = new GeradorBoletoCefCarteira24(infoBoleto, carteiraBoleto);
			}else{
				throw new Exception("Carteira de codigo " + carteiraBoleto.getId().getNumeroCarteira() + " não é uma carteira válida CEF");
			}
		}else{
			throw new Exception("Carteira inválida.");
		}
		
		return geradorBoleto;
		
	}
}
